// AxiomInput 组件样式
.axiom-input {
  display: flex;
  flex-direction: column;
  gap: var(--axiom-input-gap, 6px);
  width: 100%;

  // 标签样式
  &__label {
    font-size: var(--axiom-input-label-font-size, 14px);
    font-weight: var(--axiom-input-label-weight, 500);
    color: var(--text-color);
    font-family: var(--font-family-base);
    line-height: 1.4;
    
    // 必填标记
    .axiom-input__required {
      color: var(--danger-color);
      margin-left: var(--axiom-input-required-margin-left, 2px);
    }
  }

  // 核心样式 - 直接作用于.axiom-input下的元素
  .el-input__wrapper {
    background-color: var(--bg-color-secondary) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--border-radius-base) !important;
    box-shadow: none !important;
    transition: all 0.3s ease !important;
    padding: var(--axiom-input-field-padding, 8px 12px) !important;
    
    &:hover {
      border-color: var(--primary-color) !important;
    }
    
    &.is-focus {
      border-color: var(--primary-color) !important;
      box-shadow: var(--axiom-input-focus-shadow, 0 0 0 2px var(--primary-color-light)) !important;
    }
  }
  .axiom-input__wrapper {
    background-color: var(--bg-color-secondary) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--border-radius-base) !important;
    box-shadow: none !important;
    transition: all 0.3s ease !important;
    padding: var(--axiom-input-field-padding, 8px 12px) !important;
    
    &:hover {
      border-color: var(--primary-color) !important;
    }
    
    &.is-focus {
      border-color: var(--primary-color) !important;
      box-shadow: var(--axiom-input-focus-shadow, 0 0 0 2px var(--primary-color-light)) !important;
    }
  }
  
  .el-input__inner {
    color: var(--text-color) !important;
    font-family: var(--font-family-base) !important;
    font-size: var(--axiom-input-field-font-size, 14px) !important;
    
    &::placeholder {
      color: var(--text-color-secondary) !important;
    }
  }
  
  // 禁用状态
  &.is-disabled {
    .el-input__wrapper {
      background-color: var(--disabled-bg-color) !important;
      border-color: var(--disabled-border-color) !important;
      cursor: not-allowed !important;
    }
    
    .el-input__inner {
      color: var(--disabled-text-color) !important;
      cursor: not-allowed !important;
    }
  }
  
  // 错误状态
  &--error {
    .el-input__wrapper {
      border-color: var(--danger-color) !important;
      
      &:hover,
      &.is-focus {
        border-color: var(--danger-color) !important;
        box-shadow: var(--axiom-input-error-focus-shadow, 0 0 0 2px rgba(245, 108, 108, 0.2)) !important;
      }
    }
  }
  
  // 尺寸变体
  &.el-input--large {
    .el-input__wrapper {
      padding: var(--axiom-input-lg-padding, 12px 16px) !important;
    }
    
    .el-input__inner {
      font-size: var(--axiom-input-lg-font-size, 16px) !important;
    }
  }
  
  &.el-input--small {
    .el-input__wrapper {
      padding: var(--axiom-input-sm-padding, 6px 8px) !important;
    }
    
    .el-input__inner {
      font-size: var(--axiom-input-sm-font-size, 12px) !important;
    }
  }

  // 错误信息样式
  &__error {
    font-size: var(--axiom-input-error-font-size, 12px);
    color: var(--danger-color);
    font-family: var(--font-family-base);
    line-height: 1.4;
    margin-top: var(--axiom-input-error-margin-top, 2px);
  }

  // 帮助文本样式
  &__help {
    font-size: var(--axiom-input-help-font-size, 12px);
    color: var(--text-color-secondary);
    font-family: var(--font-family-base);
    line-height: 1.4;
    margin-top: var(--axiom-input-help-margin-top, 2px);
  }

  // 前置和后置内容样式
  .el-input-group__prepend,
  .el-input-group__append {
    background-color: var(--axiom-input-prepend-append-bg, var(--bg-color)) !important;
    border-color: var(--border-color) !important;
    color: var(--axiom-input-prepend-append-color, var(--text-color-secondary)) !important;
  }

  // 清除按钮样式
  .el-input__clear {
    color: var(--text-color-secondary) !important;
    
    &:hover {
      color: var(--text-color) !important;
    }
  }

  // 密码切换按钮样式
  .el-input__password {
    color: var(--text-color-secondary) !important;
    
    &:hover {
      color: var(--text-color) !important;
    }
  }

  // 文本域样式
  .el-textarea {
    .el-textarea__inner {
      background-color: var(--bg-color-secondary) !important;
      border: 1px solid var(--border-color) !important;
      border-radius: var(--border-radius-base) !important;
      color: var(--text-color) !important;
      font-family: var(--font-family-base) !important;
      font-size: var(--axiom-textarea-font-size, 14px) !important;
      padding: var(--axiom-textarea-padding, 8px 12px) !important;
      transition: all 0.3s ease !important;
      resize: vertical;
      
      &::placeholder {
        color: var(--text-color-secondary) !important;
      }
      
      &:hover {
        border-color: var(--primary-color) !important;
      }
      
      &:focus {
        border-color: var(--primary-color) !important;
        box-shadow: var(--axiom-input-focus-shadow, 0 0 0 2px var(--primary-color-light)) !important;
        outline: none !important;
      }
    }
    
    // 禁用状态
    &.is-disabled {
      .el-textarea__inner {
        background-color: var(--disabled-bg-color) !important;
        border-color: var(--disabled-border-color) !important;
        color: var(--disabled-text-color) !important;
        cursor: not-allowed !important;
        resize: none;
      }
    }
    
    // 错误状态
    &.axiom-input--error {
      .el-textarea__inner {
        border-color: var(--danger-color) !important;
        
        &:hover,
        &:focus {
          border-color: var(--danger-color) !important;
          box-shadow: var(--axiom-input-error-focus-shadow, 0 0 0 2px rgba(245, 108, 108, 0.2)) !important;
        }
      }
    }
  }

  &.h-100 {
    .el-textarea,
    .el-textarea__inner {
      height: 100%;
    }
    .axiom-input__wrapper {
      height: 100%;
    }
  }
}

html.theme-cyberpunk .axiom-input {
  .el-input__wrapper {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    backdrop-filter: var(--backdrop-blur);

    &:hover {
      border-color: var(--primary-color) !important;
    }

    &.is-focus {
      border-color: var(--primary-color-hover) !important;
      box-shadow: var(--primary-glow) !important;
    }
  }

  .el-textarea__inner {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    backdrop-filter: var(--backdrop-blur);

    &:hover {
      border-color: var(--primary-color) !important;
    }

    &:focus {
      border-color: var(--primary-color-hover) !important;
      box-shadow: var(--primary-glow) !important;
    }
  }
}

html.theme-neon .axiom-input {
  .el-input__wrapper, .el-textarea__inner {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    backdrop-filter: var(--backdrop-blur);

    &:hover {
      border-color: var(--primary-color) !important;
    }
  }

  .el-input__wrapper.is-focus, .el-textarea__inner:focus {
    border-color: var(--primary-color-hover) !important;
    box-shadow: var(--primary-glow) !important;
  }
}

// Rainbow Cyber 主题专属“特效”
html.theme-rainbow-cyber .axiom-input {
  .el-input__wrapper, .el-textarea__inner {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    backdrop-filter: var(--backdrop-blur);
    position: relative;

    &::after {
      content: "";
      position: absolute;
      top: -2px;
      left: -2px;
      right: -2px;
      bottom: -2px;
      background: var(--rainbow-gradient);
      background-size: 200% 200%;
      border-radius: calc(var(--border-radius-base) + 2px);
      z-index: -1;
      opacity: 0;
      transition: opacity 0.3s ease;
      animation: rainbow-pulse 4s linear infinite;
    }

    &:hover::after, &.is-focus::after, &:focus::after {
      opacity: 1;
    }
  }
}